package com.backend.modules.task.convert;

import com.backend.modules.system.convert.DepartmentConvert;
import com.backend.modules.task.entity.Task;
import com.backend.modules.task.vo.TaskVO;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 任务对象转换器
 */
public class TaskConvert {
    
    /**
     * 将任务实体转换为VO对象
     * @param entity 任务实体
     * @return 任务VO
     */
    public static TaskVO convert(Task entity) {
        if (entity == null) {
            return null;
        }
        
        TaskVO vo = new TaskVO();
        vo.setId(entity.getId());
        vo.setName(entity.getName());
        vo.setDescription(entity.getDescription());
        vo.setDeadline(entity.getDeadline());
        vo.setFileRequirements(entity.getFileRequirements());
        vo.setSubmitRequirements(entity.getSubmitRequirements());
        vo.setCreateTime(entity.getCreateTime());
        vo.setUpdateTime(entity.getUpdateTime());
        
        // 转换班级信息
        if (entity.getClassInfo() != null) {
            vo.setClassInfo(DepartmentConvert.convertClass(entity.getClassInfo()));
        }
        
        return vo;
    }
    
    /**
     * 将任务实体列表转换为VO列表
     * @param list 任务实体列表
     * @return 任务VO列表
     */
    public static List<TaskVO> convertList(List<Task> list) {
        return list.stream()
                .map(TaskConvert::convert)
                .collect(Collectors.toList());
    }
} 